home *** CD-ROM | disk | FTP | other *** search
- Path: EU.net!sun4nl!xs4all!usenet
- From: jtv@xs4all.nl (Jeroen T. Vermeulen)
- Newsgroups: comp.sys.amiga.misc
- Subject: Re: OS features
- Date: Sat, 20 Jan 96 20:17:27
- Organization: Leiden University, Mathematics & Computer Science, The Netherlands
- Message-ID: <19960120.7B57BE0.122A3@asd01-04.dial.xs4all.nl>
- References: <DLAA61.2us@inter.NL.net> <4dh2dm$jui@serpens.rhein.de> <1292.6592T166T2158@algonet.se> <4do01q$fmc@serpens.rhein.de>
- NNTP-Posting-Host: asd01-04.dial.xs4all.nl
- Mime-Version: 1.0
- Content-Type: text/plain; charset=iso-8859-1
- Content-Transfer-Encoding: 8bit
- X-NewsSoftware: GRn 2.1 Feb 19, 1994
-
-
- In article <4do01q$fmc@serpens.rhein.de> mlelstv@serpens.rhein.de (Michael van Elst) writes:
- > betasoft@algonet.se (Mattias Karlsson) writes:
- >
- > >I must say that MEMF_PUBLIC is an excelent way to say: Hey, this piece of mem
- > >is going to be used by other programms as well so you better let them do it.
- >
- > It also has other meanings and isn't used consistently. For example, it
- > also rules out that the memory is swapped out. But why would you lock
- > shared memory in real memory when there is no reason ?
-
- I think it's because Forbid()/Permit() is still used in a lot of places where
- the OS should have defined a separate semaphore (and probably implemented
- deadlock detection and resolution as well). So this memory is *more likely* to
- page-fault during Forbid().
-
- The problem here is that VM access implies that you may have to access the disk
- to service a page fault, and the driver for that disk is a separate task that
- can't be switched in during Forbid(). With VMM at least, accessing private VM
- during Forbid() is "usually" safe <shudder> because it's usually swapped in.
-
- VMM's implementation aside (which uses yet another task as a page server), I
- think the only real solution to the problem is to either
-
- [1] implement a special driver for the swap device as a single-threaded library,
- more or less like other OS's do (boo!), or
-
- [2] make a radical change: Design around the problem for the new PPC OS so the
- problem is limited to the 68k emulator (compatibility vs VM/MP--past vs future!)
- and allow the driver to be switched in but without affecting the emulator's
- virtual public memory space.
-
- Solution [2] might even be possible without introducing incompatibility,
- provided that the device driver gets a chance to "sneak in through the crack
- under the door" by doing its work without appearing in the public process list.
- Effectively this means that public memory as we know it is turned into a virtual
- environment, and a new layer is added below.
-
- The easiest change would perhaps be, to have multiple public-memory pools for
- different groups of communicating processes, each guarded by a semaphore, and
- change the meaning of the current Forbid() calls to "Obtain non-shared (write)
- access to all virtual public memory spaces accessible to me".
-
- This wouldn't eliminate public memory altogether, but perhaps a lot of current
- "public" structures could be either copied into multiple public spaces (and
- frozen at Forbid() time) or simply protected from write access.
-
-
- > Michael van Elst
- > Internet: mlelstv@serpens.rhein.de
- > "A potential Snark may lurk in every tree."
-
-
- --
- ============================================================================
- # Jeroen T. Vermeulen \"How are we doing kid?"/ Yes, we use Amigas. #
- #--- jtv@xs4all.nl ---\"Oh, same as always."/-- ... --#
- #jvermeul@wi.leidenuniv.nl \ "That bad, huh?" / Got a problem with that? #
-